// Страница команд пользователя
$('.user-teams').livequery(function(){
	// Окно для создания команды
	$('#create-team').click(function() {
		$('#new-team-form').dialog({draggable: false, resizable: false, title: 'Добавление команды', height: 210, modal: true});
		$('.city-field').myAutocomplite(
				options = {
					requestUrl : 'city/auto-suggest',
					essenceId : 'ID_city'
				});
		return false;
	});
	
	var teamIsCreating = false;
	// Сабмит формы создания команды
	$("#new-team-form form, #edit-team form").submit(function() {
		if(teamIsCreating) return false;
		else teamIsCreating = true;
		// ВАЛИДАЦИЯ
	});
	
});

// Страница команды
$('.team').livequery(function(){
	$('.want-in').click(function() { // "Вступить в команду"
		$('#for-request-form').dialog({draggable: false, resizable: false, title: 'Заявка на вступление', height: 'auto', width: 240, modal: true});
		return false;
	});
	
	canSendRequst = true;
	$('.request-handler').live('click', function() { // Подтверждение после выбора статуса
		var action;
		if ($(this).hasClass('leave')) {
			if (confirm('Вы действительно хотите выйти из команды?')) action = 'leave';
			else return false;
		}
		else if(!$("input[name='stat']:checked").val()) {
			alert('Выберите статус');
			return false;
		}
		else {
			if(!canSendRequst) return false;
			action = 'add';
			canSendRequst = false;
		}
		$.ajax({
			dataType: 'json',
			url: W_AJAX + 'team/request',
			type: 'POST',
			data: {
				ID_team: $('#numbero').val(),
				action: action,
				status: $("input[name='stat']:checked").val() ? $("input[name='stat']:checked").val() : null
			},
			success: function(data) {
				if(data.result == 'admin-added') {
					$('.want-in').replaceWith('<a href="#" class="request-handler leave blue simple-btn">Уйти из команды</a>');
					$('#for-request-form').dialog('close');
				}
				else if(data.result == 'user-request-added') {
					$('.want-in').replaceWith('<div class="inf gr-text">Вы отправили заявку</div>');
					$('#for-request-form').dialog('close');
				}
				else if (data.result == 'removed' || data.result == 'user-added') location.reload();
			}	
		});
		return false;
	});
});


// Страницы управления командой(для админов)
$('.team-management').livequery(function(){
	// Редактирование города команды
	$('.city-field').myAutocomplite(
			options = {
				requestUrl : 'city/auto-suggest',
				essenceId : 'ID_city'
	});
	
	var uploader = new qq.FineUploaderBasic({
		button:  $('#avatar-uploader')[0],
		request: {
	        endpoint: W_AJAX + 'team/avatar-upload',
	        params: {ID_team: $('#temid').val()}
	      },
	      validation: {
	        allowedExtensions: ['jpg', 'png'],
	        sizeLimit: 5 * 1024 * 1024 // 5 МБ
	      },
	    debug: true,
	    dragAndDrop : {
	    	disableDefaultDropzone: true
	    },
	    callbacks: {
	    	onSubmit: function(id, fileName) {
	    		$('#avatar-uploader').prepend('<img src="/content/images/loading.gif">');
		      },
		      onUpload: function(id, fileName) {
		      },
		      onProgress: function(id, fileName, loaded, total) {
		      },
		      onComplete: function(id, fileName, responseJSON) {
		    	  console.log(responseJSON);
		    	  // Для маленьких файлов onProgress не успевает срабатывать, поэтому полосе загрузке присваиваем здесь полныую ширину
		    	  $('#avatar-uploader img').remove();
		    	  $('#ava-upload-picture .l-ava').html('<img src="' + responseJSON.filePath + '">');	
		      },
		      onError : function(id, fileName, errorReason) {
		    	  console.log(id);
		    	  console.log(errorReason);
		      }
	    }
		
	});           
	
	// Принятие/отклонение заявок на вступление в команды
	$('.admin-request-handler').click(function() {
		var self = $(this);
		$.ajax({
			dataType: 'json',
			url: W_AJAX + 'team/request-handler',
			type: 'POST',
			data: {
				ID_team: $('#numbero').val(),
				ID_user: self.parent().attr('user'),
				action: self.attr('opt')
			},
			success: function(data) {
				if(data.result == 'accepted') self.closest('.options').html('Заявка принята.');
				if(data.result == 'refused') self.closest('.options').html('Заявка отклонена.');
			}	
		});
		return false;
	});
	
	// Назначение в короли
	$('.tools .make-admin').click(function() {
		var self = $(this);
		if(!self.closest('.tools').hasClass('act')) return false;
		self.closest('.tools').removeClass('act');
		$.ajax({
			dataType: 'json',
			url: W_AJAX + 'team/make-admin',
			type: 'POST',
			data: {
				ID_team: $('#numbero').val(),
				ID_user: self.closest('.info').attr('ie')
			},
			success: function(data) {
				self.closest('.tools').addClass('act');
				if(data.result == 'OK') {
					var  item = self.closest('.item');
					self.remove();
					$('.team-status', item).before('<div class="gr-text">Администратор</div>');
				}
			}
		});
		return false;
	});
	
	// Изгнание со двора
	$('.tools .delete-user').click(function() {
		var self = $(this);
		if(!self.closest('.tools').hasClass('act')) return false;
		self.closest('.tools').removeClass('act');
		$.ajax({
			dataType: 'json',
			url: W_AJAX + 'team/del-pers',
			type: 'POST',
			data: {
				ID_team: $('#numbero').val(),
				ID_user: self.closest('.info').attr('ie')
			},
			success: function(data) {
				if(data.result == 'OK') {
					self.closest('.item').slideUp(250, function(){self.closest('.item').remove();});
				}
				else self.closest('.tools').addClass('act');
			}	
		});
		return false;
	});
	
	// Отбор чина
	$('.tools .kill-admin').click(function() {
		var self = $(this);
		if(!self.closest('.tools').hasClass('act')) return false;
		self.closest('.tools').removeClass('act');
		$.ajax({
			dataType: 'json',
			url: W_AJAX + 'team/kill-admin',
			type: 'POST',
			data: {
				ID_team: $('#numbero').val(),
				ID_user: self.closest('.info').attr('ie')
			},
			success: function(data) {
				if(data.result == 'OK') {
					self.closest('.item').slideUp(250, function(){self.closest('.item').remove();});
				}
				else self.closest('.tools').addClass('act');
			}	
		});
		return false;
	});
});
